home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / discs / prog_disc / volume_3 / issue06 / heapsort / heapstr2 < prev   
Unknown  |  1990-02-24  |  4.2 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% xdgMime image/x-tga default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 0f f4 20 3e 48 | 45 41 50 53 74 72 32 0d |..... >H|EAPStr2.|
|00000010| 00 14 04 0d 00 1e 0f f4 | 20 49 61 6e 20 53 6d 69 |........| Ian Smi|
|00000020| 74 68 0d 00 28 13 f4 20 | 46 65 62 72 75 61 72 79 |th..(.. |February|
|00000030| 20 31 39 39 30 0d 00 32 | 35 f4 20 49 6e 63 6f 72 | 1990..2|5. Incor|
|00000040| 70 6f 72 61 74 69 6e 67 | 20 41 73 73 65 6d 62 6b |porating| Assembk|
|00000050| 65 72 20 63 6f 64 65 20 | 62 79 20 50 65 74 65 72 |er code |by Peter|
|00000060| 20 43 6f 63 6b 65 72 65 | 6c 6c 0d 00 3c 04 0d 00 | Cockere|ll..<...|
|00000070| 46 34 f4 20 41 20 53 74 | 72 69 6e 67 20 53 6f 72 |F4. A St|ring Sor|
|00000080| 74 20 75 73 69 6e 67 20 | 52 69 73 63 20 4f 53 20 |t using |Risc OS |
|00000090| 62 75 69 6c 74 20 69 6e | 20 48 65 61 70 20 53 6f |built in| Heap So|
|000000a0| 72 74 0d 00 50 04 0d 00 | 5a 49 f4 20 53 6f 72 74 |rt..P...|ZI. Sort|
|000000b0| 73 20 31 32 30 30 20 73 | 74 72 69 6e 67 73 20 6f |s 1200 s|trings o|
|000000c0| 66 20 55 50 20 54 4f 20 | 6c 65 6e 67 74 68 20 37 |f UP TO |length 7|
|000000d0| 30 20 63 68 61 72 61 63 | 74 65 72 73 20 69 6e 20 |0 charac|ters in |
|000000e0| 75 6e 64 65 72 20 33 20 | 73 65 63 6f 6e 64 73 0d |under 3 |seconds.|
|000000f0| 00 64 04 0d 00 6e 27 4f | 53 5f 53 6f 72 74 20 3d |.d...n'O|S_Sort =|
|00000100| 20 26 34 46 20 20 20 20 | 20 20 20 20 3a 20 f4 20 | &4F | : . |
|00000110| 53 59 53 20 6e 75 6d 62 | 65 72 0d 00 78 04 0d 00 |SYS numb|er..x...|
|00000120| 82 32 f3 20 4e 75 6d 20 | 20 20 20 20 20 20 20 20 |.2. Num | |
|00000130| 20 20 20 20 3a 20 f4 20 | 48 6f 77 20 6d 61 6e 79 | : . |How many|
|00000140| 20 73 74 72 69 6e 67 73 | 20 74 6f 20 73 6f 72 74 | strings| to sort|
|00000150| 0d 00 8c 2b de 20 57 6f | 72 64 73 24 28 4e 75 6d |...+. Wo|rds$(Num|
|00000160| 29 20 20 20 20 20 20 3a | 20 f4 20 53 65 74 20 75 |) :| . Set u|
|00000170| 70 20 74 68 65 20 61 72 | 72 61 79 0d 00 96 04 0d |p the ar|ray.....|
|00000180| 00 a0 3a f1 20 22 20 4f | 72 69 67 69 6e 61 6c 20 |..:. " O|riginal |
|00000190| 44 61 74 61 20 22 27 20 | 20 20 3a 20 f4 20 47 65 |Data "' | : . Ge|
|000001a0| 6e 65 72 61 74 65 20 74 | 68 65 20 72 61 6e 64 6f |nerate t|he rando|
|000001b0| 6d 20 73 74 72 69 6e 67 | 73 0d 00 aa 2c e3 20 57 |m string|s...,. W|
|000001c0| 6f 72 64 20 3d 20 31 20 | b8 20 4e 75 6d 20 20 20 |ord = 1 |. Num |
|000001d0| 20 20 20 20 20 3a 20 f4 | 20 74 6f 20 62 65 20 73 | : .| to be s|
|000001e0| 6f 72 74 65 64 0d 00 b4 | 0d 20 20 57 24 20 3d 20 |orted...|. W$ = |
|000001f0| 22 22 0d 00 be 40 20 20 | e3 20 4c 20 3d 20 31 20 |""...@ |. L = 1 |
|00000200| b8 20 b3 28 37 30 29 20 | 20 20 20 20 20 20 20 20 |. .(70) | |
|00000210| 20 3a 20 f4 20 37 30 20 | 63 61 6e 20 62 65 20 63 | : . 70 |can be c|
|00000220| 68 61 6e 67 65 64 20 55 | 50 20 54 4f 20 32 35 34 |hanged U|P TO 254|
|00000230| 21 21 0d 00 c8 3c 20 20 | 20 20 57 24 20 3d 20 57 |!!...< | W$ = W|
|00000240| 24 20 2b 20 bd 28 b3 28 | 32 35 29 2b 20 36 35 29 |$ + .(.(|25)+ 65)|
|00000250| 20 3a 20 f4 20 53 69 6d | 70 6c 79 20 75 70 70 65 | : . Sim|ply uppe|
|00000260| 72 20 63 61 73 65 20 6c | 65 74 74 65 72 73 0d 00 |r case l|etters..|
|00000270| d2 07 20 20 ed 0d 00 dc | 16 20 20 57 6f 72 64 73 |.. ....|. Words|
|00000280| 24 28 57 6f 72 64 29 3d | 20 57 24 0d 00 e6 14 20 |$(Word)=| W$.... |
|00000290| 20 f1 20 57 6f 72 64 73 | 24 28 57 6f 72 64 29 0d | . Words|$(Word).|
|000002a0| 00 f0 05 ed 0d 00 fa 05 | f1 0d 01 04 04 0d 01 0e |........|........|
|000002b0| 46 f2 61 73 73 65 6d 62 | 6c 65 63 6f 6d 70 61 72 |F.assemb|lecompar|
|000002c0| 65 20 20 20 20 20 20 20 | 3a 20 f4 20 20 41 73 73 |e |: . Ass|
|000002d0| 65 6d 62 6c 65 20 74 68 | 65 20 63 6f 64 65 20 74 |emble th|e code t|
|000002e0| 6f 20 63 6f 6d 70 61 72 | 65 20 32 20 73 74 72 69 |o compar|e 2 stri|
|000002f0| 6e 67 73 0d 01 18 04 0d | 01 22 0d 53 74 61 72 74 |ngs.....|.".Start|
|00000300| 20 3d 20 91 0d 01 2c 04 | 0d 01 36 42 f2 53 74 72 | = ...,.|..6B.Str|
|00000310| 69 6e 67 53 6f 72 74 28 | 57 6f 72 64 73 24 28 29 |ingSort(|Words$()|
|00000320| 29 20 20 3a 20 f4 20 43 | 61 6c 6c 20 74 68 65 20 |) : . C|all the |
|00000330| 53 6f 72 74 20 70 72 6f | 63 65 64 75 72 65 20 70 |Sort pro|cedure p|
|00000340| 61 73 73 69 6e 67 20 74 | 68 65 0d 01 40 3f 20 20 |assing t|he..@? |
|00000350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000360| 20 20 20 20 20 20 20 20 | 3a 20 f4 20 61 72 72 61 | |: . arra|
|00000370| 79 20 6f 66 20 73 74 72 | 69 6e 67 73 20 74 6f 20 |y of str|ings to |
|00000380| 62 65 20 73 6f 72 74 65 | 64 0d 01 4a 04 0d 01 54 |be sorte|d..J...T|
|00000390| 0e 46 69 6e 69 73 68 20 | 3d 20 91 0d 01 5e 1e 54 |.Finish |= ...^.T|
|000003a0| 69 6d 65 74 61 6b 65 6e | 20 3d 20 46 69 6e 69 73 |imetaken| = Finis|
|000003b0| 68 20 2d 20 53 74 61 72 | 74 0d 01 68 04 0d 01 72 |h - Star|t..h...r|
|000003c0| 3c f1 20 22 20 4e 6f 77 | 20 53 6f 72 74 65 64 20 |<. " Now| Sorted |
|000003d0| 22 27 20 20 20 20 20 3a | 20 f4 20 44 69 73 70 6c |"' :| . Displ|
|000003e0| 61 79 20 74 68 65 20 64 | 61 74 61 20 41 46 54 45 |ay the d|ata AFTE|
|000003f0| 52 20 73 6f 72 74 69 6e | 67 0d 01 7c 14 e3 20 57 |R sortin|g..|.. W|
|00000400| 6f 72 64 20 3d 20 31 20 | b8 20 4e 75 6d 0d 01 86 |ord = 1 |. Num...|
|00000410| 14 20 20 f1 20 57 6f 72 | 64 73 24 28 57 6f 72 64 |. . Wor|ds$(Word|
|00000420| 29 0d 01 90 05 ed 0d 01 | 9a 05 f1 0d 01 a4 04 0d |).......|........|
|00000430| 01 ae 08 40 25 3d 32 0d | 01 b8 30 f1 20 22 54 69 |...@%=2.|..0. "Ti|
|00000440| 6d 65 20 74 61 6b 65 6e | 20 3a 20 22 3b 54 69 6d |me taken| : ";Tim|
|00000450| 65 74 61 6b 65 6e 20 2f | 20 31 30 30 3b 22 20 73 |etaken /| 100;" s|
|00000460| 65 63 6f 6e 64 73 22 0d | 01 c2 04 0d 01 cc 39 dc |econds".|......9.|
|00000470| 20 31 32 30 30 20 20 20 | 20 3a 20 52 45 4d 20 43 | 1200 | : REM C|
|00000480| 68 61 6e 67 65 20 74 68 | 69 73 20 74 6f 20 74 72 |hange th|is to tr|
|00000490| 79 20 6f 75 74 20 6c 61 | 72 67 65 72 20 6e 75 6d |y out la|rger num|
|000004a0| 62 65 72 73 0d 01 d6 04 | 0d 01 e0 05 e0 0d 01 ea |bers....|........|
|000004b0| 04 0d 01 f4 19 dd 20 f2 | 53 74 72 69 6e 67 53 6f |...... .|StringSo|
|000004c0| 72 74 28 f8 20 41 24 28 | 29 29 0d 01 fe 04 0d 02 |rt(. A$(|))......|
|000004d0| 08 2e ea 20 53 69 7a 65 | 25 2c 52 31 25 2c 43 61 |... Size|%,R1%,Ca|
|000004e0| 73 65 25 2c 57 25 2c 57 | 6f 72 64 2c 4d 61 78 4c |se%,W%,W|ord,MaxL|
|000004f0| 65 6e 67 74 68 2c 4c 65 | 6e 67 74 68 0d 02 12 04 |ength,Le|ngth....|
|00000500| 0d 02 1c 46 53 69 7a 65 | 25 20 3d 20 de 28 41 24 |...FSize|% = .(A$|
|00000510| 28 29 2c 31 29 20 20 20 | 20 20 20 3a 20 f4 20 46 |(),1) | : . F|
|00000520| 69 6e 64 20 74 68 65 20 | 6e 75 6d 62 65 72 20 6f |ind the |number o|
|00000530| 66 20 73 74 72 69 6e 67 | 73 20 74 6f 20 62 65 20 |f string|s to be |
|00000540| 73 6f 72 74 65 64 0d 02 | 26 04 0d 02 30 41 4d 61 |sorted..|&...0AMa|
|00000550| 78 4c 65 6e 67 74 68 20 | 3d 20 30 20 20 20 20 20 |xLength |= 0 |
|00000560| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000570| 20 3a 20 f4 20 46 69 6e | 64 20 74 68 65 20 6c 65 | : . Fin|d the le|
|00000580| 6e 67 74 68 20 6f 66 20 | 74 68 65 0d 02 3a 36 e3 |ngth of |the..:6.|
|00000590| 20 57 6f 72 64 20 3d 20 | 31 20 b8 20 53 69 7a 65 | Word = |1 . Size|
|000005a0| 25 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3a |% | :|
|000005b0| 20 f4 20 4c 6f 6e 67 65 | 73 74 20 73 74 72 69 6e | . Longe|st strin|
|000005c0| 67 0d 02 44 20 20 20 e7 | 20 a9 20 41 24 28 57 6f |g..D .| . A$(Wo|
|000005d0| 72 64 29 20 3e 20 4d 61 | 78 4c 65 6e 67 74 68 20 |rd) > Ma|xLength |
|000005e0| 8c 0d 02 4e 1e 20 20 20 | 20 4d 61 78 4c 65 6e 67 |...N. | MaxLeng|
|000005f0| 74 68 20 3d 20 a9 20 41 | 24 28 57 6f 72 64 29 0d |th = . A|$(Word).|
|00000600| 02 58 07 20 20 cd 0d 02 | 62 0a ed 20 57 6f 72 64 |.X. ...|b.. Word|
|00000610| 0d 02 6c 04 0d 02 76 42 | 4d 61 78 4c 65 6e 67 74 |..l...vB|MaxLengt|
|00000620| 68 20 3d 20 4d 61 78 4c | 65 6e 67 74 68 20 2b 20 |h = MaxL|ength + |
|00000630| 31 20 20 20 20 20 20 3a | 20 f4 20 41 64 64 20 31 |1 :| . Add 1|
|00000640| 20 61 73 20 77 65 27 72 | 65 20 67 6f 69 6e 67 20 | as we'r|e going |
|00000650| 74 6f 20 61 64 64 0d 02 | 80 42 20 20 20 20 20 20 |to add..|.B |
|00000660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000670| 20 20 20 20 20 20 20 20 | 20 3a 20 f4 20 61 20 4e | | : . a N|
|00000680| 55 4c 4c 20 63 68 61 72 | 61 63 74 65 72 20 74 6f |ULL char|acter to|
|00000690| 20 74 68 65 20 65 6e 64 | 0d 02 8a 04 0d 02 94 45 | the end|.......E|
|000006a0| de 20 44 61 74 61 20 53 | 69 7a 65 25 2a 4d 61 78 |. Data S|ize%*Max|
|000006b0| 4c 65 6e 67 74 68 20 20 | 20 20 20 20 20 3a 20 f4 |Length | : .|
|000006c0| 20 42 6c 6f 63 6b 20 6f | 66 20 6d 65 6d 6f 72 79 | Block o|f memory|
|000006d0| 20 74 6f 20 68 6f 6c 64 | 20 74 68 65 20 64 61 74 | to hold| the dat|
|000006e0| 61 0d 02 9e 3b de 20 50 | 6f 69 6e 74 65 72 73 25 |a...;. P|ointers%|
|000006f0| 20 53 69 7a 65 25 2a 34 | 20 20 20 20 20 20 20 20 | Size%*4| |
|00000700| 20 20 3a 20 f4 20 42 6c | 6f 63 6b 20 74 6f 20 68 | : . Bl|ock to h|
|00000710| 6f 6c 64 20 70 6f 69 6e | 74 65 72 73 0d 02 a8 04 |old poin|ters....|
|00000720| 0d 02 b2 41 50 6f 73 25 | 20 3d 20 44 61 74 61 20 |...APos%| = Data |
|00000730| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000740| 20 20 20 3a 20 f4 20 4e | 6f 74 65 20 73 74 61 72 | : . N|ote star|
|00000750| 74 20 6f 66 20 73 74 6f | 72 61 67 65 20 61 72 65 |t of sto|rage are|
|00000760| 61 0d 02 bc 44 e3 20 57 | 25 20 3d 20 31 20 b8 20 |a...D. W|% = 1 . |
|00000770| 53 69 7a 65 25 20 20 20 | 20 20 20 20 20 20 20 20 |Size% | |
|00000780| 20 3a 20 f4 20 43 6f 70 | 79 20 74 68 65 20 73 74 | : . Cop|y the st|
|00000790| 72 69 6e 67 73 20 69 6e | 74 6f 20 74 68 69 73 20 |rings in|to this |
|000007a0| 62 6c 6f 63 6b 0d 02 c6 | 4a 20 20 3f 50 6f 73 25 |block...|J ?Pos%|
|000007b0| 20 3d 20 a9 20 41 24 28 | 57 25 29 20 20 20 20 20 | = . A$(|W%) |
|000007c0| 20 20 20 20 20 20 3a 20 | f4 20 70 72 65 63 65 64 | : |. preced|
|000007d0| 65 64 20 62 79 20 74 68 | 65 20 4c 45 4e 47 54 48 |ed by th|e LENGTH|
|000007e0| 20 6f 66 20 65 61 63 68 | 20 73 74 72 69 6e 67 0d | of each| string.|
|000007f0| 02 d0 46 20 20 24 28 50 | 6f 73 25 2b 31 29 20 3d |..F $(P|os%+1) =|
|00000800| 20 41 24 28 57 25 29 20 | 2b 20 bd 28 30 29 20 3a | A$(W%) |+ .(0) :|
|00000810| 20 f4 20 61 6e 64 20 66 | 6f 6c 6c 6f 77 65 64 20 | . and f|ollowed |
|00000820| 62 79 20 74 68 65 20 4e | 55 4c 4c 20 43 68 61 72 |by the N|ULL Char|
|00000830| 61 63 74 65 72 0d 02 da | 48 20 20 50 6f 73 25 3d |acter...|H Pos%=|
|00000840| 50 6f 73 25 2b 4d 61 78 | 4c 65 6e 67 74 68 20 20 |Pos%+Max|Length |
|00000850| 20 20 20 20 20 20 20 20 | 3a 20 f4 20 4d 6f 76 65 | |: . Move|
|00000860| 20 74 6f 20 6e 65 78 74 | 20 73 65 63 74 69 6f 6e | to next| section|
|00000870| 20 6f 66 20 74 68 65 20 | 62 6c 6f 63 6b 0d 02 e4 | of the |block...|
|00000880| 05 ed 0d 02 ee 04 0d 02 | f8 45 52 31 25 20 3d 20 |........|.ER1% = |
|00000890| 50 6f 69 6e 74 65 72 73 | 25 20 84 20 28 25 31 20 |Pointers|% . (%1 |
|000008a0| 3c 3c 20 33 30 29 20 20 | 3a 20 f4 20 53 6f 72 74 |<< 30) |: . Sort|
|000008b0| 20 74 68 65 20 70 6f 69 | 6e 74 65 72 73 20 73 6f | the poi|nters so|
|000008c0| 20 73 65 74 20 42 49 54 | 20 33 30 0d 03 02 49 20 | set BIT| 30...I |
|000008d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000008e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3a 20 | | : |
|000008f0| f4 20 74 6f 20 63 6f 6e | 73 74 72 75 63 74 20 74 |. to con|struct t|
|00000900| 68 65 20 61 72 72 61 79 | 20 6f 66 20 70 6f 69 6e |he array| of poin|
|00000910| 74 65 72 73 0d 03 0c 04 | 0d 03 16 25 f4 20 52 30 |ters....|...%. R0|
|00000920| 20 68 6f 6c 64 73 20 74 | 68 65 20 6e 75 6d 62 65 | holds t|he numbe|
|00000930| 72 20 6f 66 20 65 6c 65 | 6d 65 6e 74 73 0d 03 20 |r of ele|ments.. |
|00000940| 2e f4 20 52 31 20 68 6f | 6c 64 73 20 74 68 65 20 |.. R1 ho|lds the |
|00000950| 61 64 64 72 65 73 73 20 | 6f 66 20 6c 69 73 74 20 |address |of list |
|00000960| 6f 66 20 70 6f 69 6e 74 | 65 72 73 0d 03 2a 31 f4 |of point|ers..*1.|
|00000970| 20 52 32 20 68 6f 6c 64 | 73 20 74 68 65 20 61 64 | R2 hold|s the ad|
|00000980| 64 72 65 73 73 20 6f 66 | 20 74 68 65 20 63 6f 6d |dress of| the com|
|00000990| 70 61 72 65 20 72 6f 75 | 74 69 6e 65 0d 03 34 4a |pare rou|tine..4J|
|000009a0| f4 20 52 33 20 68 6f 6c | 64 73 20 74 68 65 20 61 |. R3 hol|ds the a|
|000009b0| 64 64 72 65 73 73 20 6f | 66 20 74 68 65 20 77 6f |ddress o|f the wo|
|000009c0| 72 6b 73 70 61 63 65 20 | 63 6f 6d 70 61 72 65 20 |rkspace |compare |
|000009d0| 6e 65 65 64 73 2c 20 6e | 6f 74 20 6e 65 65 64 65 |needs, n|ot neede|
|000009e0| 64 20 68 65 72 65 0d 03 | 3e 45 f4 20 52 34 20 68 |d here..|>E. R4 h|
|000009f0| 6f 6c 64 73 20 74 68 65 | 20 61 64 64 72 65 73 73 |olds the| address|
|00000a00| 20 6f 66 20 74 68 65 20 | 62 6c 6f 63 6b 20 68 6f | of the |block ho|
|00000a10| 6c 64 69 6e 67 20 74 68 | 65 20 64 61 74 61 20 74 |lding th|e data t|
|00000a20| 6f 20 62 65 20 73 6f 72 | 74 65 64 0d 03 48 35 f4 |o be sor|ted..H5.|
|00000a30| 20 52 35 20 68 6f 6c 64 | 73 20 74 68 65 20 73 69 | R5 hold|s the si|
|00000a40| 7a 65 20 6f 66 20 65 61 | 63 68 20 65 6c 65 6d 65 |ze of ea|ch eleme|
|00000a50| 6e 74 20 74 6f 20 62 65 | 20 73 6f 72 74 65 64 2e |nt to be| sorted.|
|00000a60| 0d 03 52 2f f4 20 20 20 | 20 74 68 65 20 6d 61 78 |..R/. | the max|
|00000a70| 69 6d 75 6d 20 73 74 72 | 69 6e 67 20 6c 65 6e 67 |imum str|ing leng|
|00000a80| 74 68 20 69 6e 20 74 68 | 69 73 20 63 61 73 65 0d |th in th|is case.|
|00000a90| 03 5c 37 f4 20 52 36 20 | 77 6f 75 6c 64 20 68 6f |.\7. R6 |would ho|
|00000aa0| 6c 64 20 61 20 77 6f 72 | 6b 73 70 61 63 65 20 61 |ld a wor|kspace a|
|00000ab0| 64 64 64 72 65 73 73 20 | 69 66 20 52 35 20 69 73 |dddress |if R5 is|
|00000ac0| 20 3e 20 31 36 4b 0d 03 | 66 04 0d 03 70 45 c8 99 | > 16K..|f...pE..|
|00000ad0| 20 4f 53 5f 53 6f 72 74 | 2c 53 69 7a 65 25 2c 52 | OS_Sort|,Size%,R|
|00000ae0| 31 25 2c 73 74 72 43 6d | 70 2c 2c 44 61 74 61 2c |1%,strCm|p,,Data,|
|00000af0| 4d 61 78 4c 65 6e 67 74 | 68 20 20 20 3a 20 f4 20 |MaxLengt|h : . |
|00000b00| 55 53 45 20 4f 53 5f 48 | 65 61 70 53 6f 72 74 0d |USE OS_H|eapSort.|
|00000b10| 03 7a 04 0d 03 84 3d 50 | 6f 73 25 3d 20 44 61 74 |.z....=P|os%= Dat|
|00000b20| 61 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |a | |
|00000b30| 20 20 20 20 20 20 20 20 | 20 20 3a 20 f4 20 43 6f | | : . Co|
|00000b40| 70 79 20 74 68 65 20 64 | 61 74 61 20 62 61 63 6b |py the d|ata back|
|00000b50| 0d 03 8e 42 e3 20 57 25 | 20 3d 20 31 20 b8 20 53 |...B. W%| = 1 . S|
|00000b60| 69 7a 65 25 20 20 20 20 | 20 20 20 20 20 20 20 20 |ize% | |
|00000b70| 20 20 20 20 3a 20 f4 20 | 4a 75 73 74 20 74 68 65 | : . |Just the|
|00000b80| 20 72 65 76 65 72 73 65 | 20 6f 66 20 62 65 66 6f | reverse| of befo|
|00000b90| 72 65 0d 03 98 14 20 20 | 4c 65 6e 67 74 68 20 3d |re.... |Length =|
|00000ba0| 20 3f 50 6f 73 25 0d 03 | a2 3c 20 20 41 24 28 57 | ?Pos%..|.< A$(W|
|00000bb0| 25 29 3d 20 c0 24 28 50 | 6f 73 25 2b 31 29 2c 4c |%)= .$(P|os%+1),L|
|00000bc0| 65 6e 67 74 68 29 20 20 | 3a 20 f4 20 4a 75 73 74 |ength) |: . Just|
|00000bd0| 20 63 6f 70 79 20 77 68 | 61 74 20 77 65 20 6e 65 | copy wh|at we ne|
|00000be0| 65 64 0d 03 ac 19 20 20 | 50 6f 73 25 3d 50 6f 73 |ed.... |Pos%=Pos|
|00000bf0| 25 2b 4d 61 78 4c 65 6e | 67 74 68 0d 03 b6 05 ed |%+MaxLen|gth.....|
|00000c00| 0d 03 c0 04 0d 03 ca 05 | e1 0d 03 d4 04 0d 03 de |........|........|
|00000c10| 04 0d 03 e8 16 dd 20 f2 | 61 73 73 65 6d 62 6c 65 |...... .|assemble|
|00000c20| 63 6f 6d 70 61 72 65 0d | 03 f2 04 0d 03 fc 47 f4 |compare.|......G.|
|00000c30| 20 54 68 69 73 20 72 6f | 75 74 69 6e 65 20 69 73 | This ro|utine is|
|00000c40| 20 61 20 64 69 72 65 63 | 74 20 63 6f 70 79 20 6f | a direc|t copy o|
|00000c50| 66 20 74 68 65 20 72 6f | 75 74 69 6e 65 20 69 6e |f the ro|utine in|
|00000c60| 20 50 65 74 65 72 20 43 | 6f 63 6b 65 72 65 6c 6c | Peter C|ockerell|
|00000c70| 27 73 0d 04 06 37 f4 20 | 42 6f 6f 6b 20 6f 6e 20 |'s...7. |Book on |
|00000c80| 41 53 53 45 4d 42 4c 59 | 20 4c 41 4e 47 55 41 47 |ASSEMBLY| LANGUAG|
|00000c90| 45 20 50 52 4f 47 52 41 | 4d 4d 49 4e 47 20 66 6f |E PROGRA|MMING fo|
|00000ca0| 72 20 74 68 65 20 41 52 | 4d 0d 04 10 39 f4 20 49 |r the AR|M...9. I|
|00000cb0| 74 20 69 73 20 74 68 65 | 72 66 6f 72 65 20 74 68 |t is the|rfore th|
|00000cc0| 65 20 63 6f 70 79 72 69 | 67 68 74 20 6f 66 20 74 |e copyri|ght of t|
|00000cd0| 68 65 20 50 75 62 6c 69 | 73 68 65 72 27 73 20 4d |he Publi|sher's M|
|00000ce0| 54 43 0d 04 1a 4a f4 20 | 49 27 76 65 20 6a 75 73 |TC...J. |I've jus|
|00000cf0| 74 20 70 75 74 20 74 68 | 65 20 72 65 6c 65 76 61 |t put th|e releva|
|00000d00| 6e 74 20 62 69 74 20 69 | 6e 74 6f 20 61 20 50 52 |nt bit i|nto a PR|
|00000d10| 4f 43 45 44 55 52 45 20 | 77 69 74 68 20 4c 4f 43 |OCEDURE |with LOC|
|00000d20| 41 4c 20 76 61 72 69 61 | 62 6c 65 73 0d 04 24 20 |AL varia|bles..$ |
|00000d30| f4 20 74 6f 20 6d 61 6b | 65 20 69 74 20 73 65 6c |. to mak|e it sel|
|00000d40| 66 20 63 6f 6e 74 61 69 | 6e 65 64 2e 0d 04 2e 04 |f contai|ned.....|
|00000d50| 0d 04 38 23 de 20 6f 72 | 67 20 32 30 30 2c 20 62 |..8#. or|g 200, b|
|00000d60| 75 66 66 31 20 31 30 30 | 2c 20 62 75 66 66 32 20 |uff1 100|, buff2 |
|00000d70| 31 30 30 0d 04 42 39 ea | 20 73 74 72 31 2c 73 74 |100..B9.| str1,st|
|00000d80| 72 32 2c 6c 65 6e 31 2c | 6c 65 6e 32 2c 69 6e 64 |r2,len1,|len2,ind|
|00000d90| 65 78 2c 66 6c 61 67 73 | 2c 63 68 61 72 31 2c 63 |ex,flags|,char1,c|
|00000da0| 68 61 72 32 2c 73 70 2c | 6c 69 6e 6b 0d 04 4c 04 |har2,sp,|link..L.|
|00000db0| 0d 04 56 17 73 74 72 31 | 20 20 3d 20 30 3a 73 74 |..V.str1| = 0:st|
|00000dc0| 72 32 20 20 3d 20 31 0d | 04 60 17 6c 65 6e 31 20 |r2 = 1.|.`.len1 |
|00000dd0| 20 3d 20 32 3a 6c 65 6e | 32 20 20 3d 20 33 0d 04 | = 2:len|2 = 3..|
|00000de0| 6a 0d 69 6e 64 65 78 20 | 3d 20 34 0d 04 74 10 66 |j.index |= 4..t.f|
|00000df0| 6c 61 67 73 20 3d 20 6c | 65 6e 32 0d 04 7e 17 63 |lags = l|en2..~.c|
|00000e00| 68 61 72 31 20 3d 20 35 | 3a 63 68 61 72 32 20 3d |har1 = 5|:char2 =|
|00000e10| 20 36 0d 04 88 0e 73 70 | 20 20 20 20 3d 20 31 33 | 6....sp| = 13|
|00000e20| 0d 04 92 0e 6c 69 6e 6b | 20 20 3d 20 31 34 0d 04 |....link| = 14..|
|00000e30| 9c 04 0d 04 a6 16 e3 20 | 70 61 73 73 20 3d 20 30 |....... |pass = 0|
|00000e40| 20 b8 20 32 20 88 20 32 | 0d 04 b0 04 0d 04 ba 0d | . 2 . 2|........|
|00000e50| 20 20 50 25 3d 20 6f 72 | 67 0d 04 c4 10 20 20 5b | P%= or|g.... [|
|00000e60| 20 6f 70 74 20 70 61 73 | 73 0d 04 ce 0d 20 20 2e | opt pas|s.... .|
|00000e70| 73 74 72 43 6d 70 0d 04 | d8 25 20 20 20 20 53 54 |strCmp..|.% ST|
|00000e80| 4d 46 44 20 28 73 70 29 | 21 2c 7b 73 74 72 31 2d |MFD (sp)|!,{str1-|
|00000e90| 63 68 61 72 32 2c 6c 69 | 6e 6b 7d 0d 04 e2 1c 20 |char2,li|nk}.... |
|00000ea0| 20 20 20 4c 44 52 42 20 | 20 6c 65 6e 31 2c 5b 73 | LDRB | len1,[s|
|00000eb0| 74 72 31 5d 2c 23 31 0d | 04 ec 1c 20 20 20 20 4c |tr1],#1.|... L|
|00000ec0| 44 52 42 20 20 6c 65 6e | 32 2c 5b 73 74 72 32 5d |DRB len|2,[str2]|
|00000ed0| 2c 23 31 0d 04 f6 17 20 | 20 20 20 43 4d 50 20 20 |,#1.... | CMP |
|00000ee0| 20 6c 65 6e 31 2c 6c 65 | 6e 32 0d 05 00 17 20 20 | len1,le|n2.... |
|00000ef0| 20 20 4d 4f 56 47 54 20 | 6c 65 6e 31 2c 6c 65 6e | MOVGT |len1,len|
|00000f00| 32 0d 05 0a 16 20 20 20 | 20 4d 4f 56 20 20 20 66 |2.... | MOV f|
|00000f10| 6c 61 67 73 2c 70 63 0d | 05 14 16 20 20 20 20 4d |lags,pc.|... M|
|00000f20| 4f 56 20 20 20 69 6e 64 | 65 78 2c 23 30 0d 05 1e |OV ind|ex,#0...|
|00000f30| 0f 20 20 2e 73 74 72 43 | 6d 70 4c 70 0d 05 28 18 |. .strC|mpLp..(.|
|00000f40| 20 20 20 20 43 4d 50 20 | 20 20 69 6e 64 65 78 2c | CMP | index,|
|00000f50| 6c 65 6e 31 0d 05 32 17 | 20 20 20 20 42 45 51 20 |len1..2.| BEQ |
|00000f60| 20 20 73 74 72 43 6d 70 | 45 6e 64 0d 05 3c 20 20 | strCmp|End..< |
|00000f70| 20 20 20 4c 44 52 42 20 | 20 63 68 61 72 31 2c 5b | LDRB | char1,[|
|00000f80| 73 74 72 31 2c 69 6e 64 | 65 78 5d 0d 05 46 20 20 |str1,ind|ex]..F |
|00000f90| 20 20 20 4c 44 52 42 20 | 20 63 68 61 72 32 2c 5b | LDRB | char2,[|
|00000fa0| 73 74 72 32 2c 69 6e 64 | 65 78 5d 0d 05 50 1c 20 |str2,ind|ex]..P. |
|00000fb0| 20 20 20 41 44 44 20 20 | 20 69 6e 64 65 78 2c 69 | ADD | index,i|
|00000fc0| 6e 64 65 78 2c 23 31 0d | 05 5a 19 20 20 20 20 43 |ndex,#1.|.Z. C|
|00000fd0| 4d 50 20 20 20 63 68 61 | 72 31 2c 63 68 61 72 32 |MP cha|r1,char2|
|00000fe0| 0d 05 64 16 20 20 20 20 | 42 45 51 20 20 20 73 74 |..d. |BEQ st|
|00000ff0| 72 43 6d 70 4c 70 0d 05 | 6e 04 0d 05 78 19 20 20 |rCmpLp..|n...x. |
|00001000| 20 20 53 54 52 20 20 20 | 70 63 2c 74 68 65 46 6c | STR |pc,theFl|
|00001010| 61 67 73 0d 05 82 23 20 | 20 20 20 4c 44 4d 46 44 |ags...# | LDMFD|
|00001020| 20 28 73 70 29 21 2c 7b | 73 74 72 31 2d 63 68 61 | (sp)!,{|str1-cha|
|00001030| 72 32 2c 70 63 7d 0d 05 | 8c 04 0d 05 96 10 20 20 |r2,pc}..|...... |
|00001040| 2e 73 74 72 43 6d 70 45 | 6e 64 0d 05 a0 16 20 20 |.strCmpE|nd.... |
|00001050| 20 20 54 45 51 50 20 20 | 66 6c 61 67 73 2c 23 30 | TEQP |flags,#0|
|00001060| 0d 05 aa 04 0d 05 b4 19 | 20 20 20 20 53 54 52 20 |........| STR |
|00001070| 20 20 70 63 2c 74 68 65 | 46 6c 61 67 73 0d 05 be | pc,the|Flags...|
|00001080| 23 20 20 20 20 4c 44 4d | 46 44 20 28 73 70 29 21 |# LDM|FD (sp)!|
|00001090| 2c 7b 73 74 72 31 2d 63 | 68 61 72 32 2c 70 63 7d |,{str1-c|har2,pc}|
|000010a0| 0d 05 c8 04 0d 05 d2 0f | 20 20 2e 74 68 65 46 6c |........| .theFl|
|000010b0| 61 67 73 0d 05 dc 0f 20 | 20 20 20 45 51 55 44 20 |ags.... | EQUD |
|000010c0| 20 30 0d 05 e6 04 0d 05 | f0 07 20 20 5d 0d 05 fa | 0......|.. ]...|
|000010d0| 04 0d 06 04 0c 20 20 ed | 20 70 61 73 73 0d 06 0e |..... .| pass...|
|000010e0| 05 e1 0d ff | |.... | |
+--------+-------------------------+-------------------------+--------+--------+